package org.rujue.modules.sys.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.rujue.common.persistence.Page;
import org.rujue.common.service.CrudService;
import org.rujue.modules.sys.dao.UserDao;
import org.rujue.modules.sys.entity.SysFile;
import org.rujue.modules.sys.entity.SysNotice;
import org.rujue.modules.sys.entity.User;
import org.rujue.modules.sys.utils.UserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 用户Service
 */
@Service
@Transactional(readOnly = true)
public class UserService extends CrudService<UserDao, User> {

	@Autowired
	private SysFileService sysFileService;

	@Transactional(readOnly = false)
	public void save(User user) {
		super.save(user);
		UserUtils.clearCache(user);
	}
	public User getByLoginName(String loginName) {
		return UserUtils.getByLoginName(loginName);
	}



	public Page<User> findPage(Page<User> page, User user) {
		user.getSqlMap().put("dsf", dataScopeFilter(user.getCurrentUser(), "o", "a"));
		return super.findPage(page, user);
	}

	public List<User> findList(User user) {
		return dao.findList(user);
	}

	@Transactional(readOnly = false)
    public void uploadIdPhoto(MultipartFile file,String id) {
		SysFile sysFile = new SysFile();
		// 文件
		sysFile.setFile(file);
		// 文件hostTable
		sysFile.setHostTable("sys_user");
		// 文件hostId
		sysFile.setHostId(id);
		// 文件hostIds
		sysFile.setHostIds(id);
		//	删除旧的文件
		sysFileService.deleteByHostId(id);
		sysFileService.save2Upload(sysFile);
		//  保存用户证件照
		dao.updatePhoto(id, sysFile.getFilePath());
		// 更新缓存
		UserUtils.clearCache(UserUtils.get(id));
    }
}
